package Ali;

import java.util.ArrayList;
import java.util.List;

/**
 * 给你一个 m 行 n 列的矩阵 matrix ，请按照 顺时针螺旋顺序 ，返回矩阵中的所有元素。
 * @author le
 */
public class Test07
{
    public static void main(String[] args)
    {

    }

    public static List<Integer> spiralOrder(int[][] matrix) {
        int m = matrix.length;
        int n = matrix[0].length;
        List<Integer> list = new ArrayList<>();

        int top = 0;
        int left = 0;
        int bottom = m-1;
        int right = n-1;

        while(left <= right && top <= bottom){
            for (int i = left;i <= right;i++){
                list.add(matrix[top][i]);
            }

            for (int i = top+1;i<= bottom;i++){
                list.add(matrix[i][right]);
            }

            for (int i = right-1;i > left;i--){
                list.add(matrix[bottom][i]);
            }

            for (int i = bottom;i> top;i--){
                list.add(matrix[left][i]);
            }
            left++;
            right--;
            top++;
            bottom--;


        }



        return list;
    }
}
